home *** CD-ROM | disk | FTP | other *** search
-
- ===============================================
-
- @(#) OKAMI SHELL VERSION 1.2 - MICROSHELL 1.2
-
- ===============================================
- Stand: 28.12.90
-
-
- Zum Lieferumfang der Okami-Shell gehört eine Mini-Shell, deren Aufgabe
- es ist, die Hauptshell aufzurufen. Die Notwendigkeit dazu ergibt sich
- aus dem folgenden Dilemma:
-
- 1. Damit von der Shell aus GEM-Programme gestartet werden können, muß
- die Shell vom Desktop aus als PRG gestartet werden.
- 2. Die Shell lädt die Datei profile nur dann, wenn ihr als Parameter
- ein Minuszeichen übergeben wird (Login-Shell, wie in Unix).
- 3. Beim Aufruf vom Desktop als PRG ist die Eingabe eines Parameters nicht
- vorgesehen
- 4. Also kann man keine Login-Shell aufrufen, von der der Start von GEM-
- programmen möglich ist.
-
- Zu diesem Zweck gibt es die Microshell, die, wenn sie als PRG aufgerufen
- wird und dann ihrerseits die Okami-Shell aufruft, den Start von GEM-Pro-
- grammen ermöglicht.
-
- Die Microshell erfüllt allerdings nicht nur diesen Zweck, sondern sie ist
- ein Werkzeug zur Kontrolldatei-gesteuerten Ausführung mehrerer Programme
- mit jeweiligen Parametern. Dazu wird eine Datei angelegt, in der die Namen
- der aufzurufenden Programme und die zu übergebenden Parameter angeführt
- sind. Das macht die Microshell tatsächlich zu einer kleineren Version einer
- Shell, die zwar nicht interaktiv arbeitet, aber trotzdem in der Lage ist,
- z.B. einen Compiler oder Linker aufzurufen und das Ergebnis anschließend
- zu starten.
- Die Microshell ist also ein vollwertiger Batch-Prozessor, der seine eigenen
- Shellscripts (die eine Untermenge der Okami-Shellscripts darstellen) hat und
- für die vielfältigsten Aufgaben eingesetzt werden kann (natürlich auch voll-
- kommen unabhängig von dem restlichen Okami-System).
-
- Die Batch- oder Kontrolldateien, die von der Microshell benutzt werden,
- werden als MSH-Scripts bezeichnet.
-
-
- Die Microshell befindet sich in der Datei msh.prg. Der Quellcode der
- Microshell gehört zum Lieferumfang und befindet sich in der Datei msh.c.
-
- Nach dem Start der Microshell als MSH.PRG wird als MSH-Script die Datei
- msh.inf im aktuellen Directoy benutzt.
- Wenn die Microshell als MSH.TTP oder von der Okami-Shell aus aufgerufen wird,
- ist die Eingabe einer Kommandozeile möglich, die folgender Syntax folgt:
-
- [Dateinamen] [-c {Kommandos}]
-
- Die angegebenen Dateien werden als MSH-Scripts ausgeführt. Wenn nach -c
- Kommandos angegeben sind, werden diese direkt ausgeführt. Dies können die
- Namen von zu startenden Programmen, aber auch interne Kommandos der Micro-
- shell sein.
- ACHTUNG: Jeder Parameter stellt dabei ein vollständiges Kommando dar. Bei
- dem Aufruf
- msh -c echo hallo
- werden zwei Kommandos, nämlich "echo" und "hallo", übergeben. Um das Kommando
- "echo hallo" ausführen zu lassen, muß der Aufruf so aussehen:
-
- msh -c "echo hallo"
-
-
- Die einzelnen Zeilen eines Scripts haben folgende Bedeutung:
-
- 1) Führende und endende Whitespace-Zeichen (Leerzeichen, Tabs, Newlines etc.)
- werden ignoriert.
- 2) Leerzeilen und Zeilen, die mit einem '#' (Doppelkreuz) beginnen, gelten
- als Kommentarzeilen.
- 3) Alle Zeilen, die keine Kommentarzeilen sind, können als letztes Zeichen
- einen Backslash (\) erhalten, dann wird die darauf folgende Zeile an
- diese Zeile angehängt.
- 4) Wenn eine Zeile nur aus einem Pluszeichen besteht, wird der Kommentar-
- Modus eingeschaltet. Im Kommentarmodus wird der Name und die Parameter
- jedes aufgerufenen Programmes auf dem Bildschirm ausgegeben. (Gilt nicht
- für interne Kommandos.) Nach dem Start der Microshell ist der Kommentar-
- modus eingeschaltet.
- 5) Wenn eine Zeile nur aus einem Minuszeichen besteht, wird der Kommentar-
- modus abgeschaltet.
-
- 6) Allen anderen Zeilen werden in der Form
- Kommando Parameter
- interpretiert. Das Kommando ist dabei entweder der Name eines internen
- Kommandos oder der Dateiname eines auszuführenden Programms.
-
- Folgende interne Kommandos sind vorhanden:
-
- echo gibt den String "Parameter" auf dem Bildschirm aus.
- incl führt die als Parameter angegebene Datei als MSH-
- Script aus. Die maximale Schachtelungstiefe von incl-
- anweisungen ist nur durch den verfügbaren Speicher und
- die Maximalanzahl gleichzeitig offener Dateien be-
- grenzt.
- ver gibt die Versionsnummer der Microshell und den Kompi-
- lierungszeitpunkt aus.
-
- Bei allen anderen Kommandos wird die als Kommando angegebene Datei ausgeführt,
- wobei der als Parameter angegebene String als Kommandozeile übergeben wird.
- Es empfiehlt sich, den vollen Dateinamen anzugeben (was aber nicht immer un-
- bedingt notwendig ist.)
-
- Die Microshell macht keinen Gebrauch von evtl. definierten Environment-Varia-
- blen, gibt diese aber an alle gestarteten Programme unverändert weiter.
-
-
- Beispiel 1: das MSH-Script zum Start der Okami-Shell
-
- # Microshell Kontrolldatei für Okami-Shell
- -
- echo Aufruf der Okami-Shell
- sh.ttp -
-
- Es wird die Okami-Shell als Login-Shell (mit dem Parameter "-") aufgerufen.
- Vor dem Aufruf der Shell wird die Meldung "Aufruf der Okami-Shell" auf den
- Bildschirm geschrieben.
-
-
- Beispiel 2: ein komplizierteres Script
-
-
- # Demo-Script für die Microshell
- -
- ver
- echo Das ist ein MSH-Script
-
- echo Aufruf des Compilers
- d:\compiler\cc.ttp e:\source\test1.c e:\source\test2.c \
- e:source\test3.c -o e:\bin\test.tos
-
- # Ausführen eines anderen Scripts
- incl e:\bin\mshdemo.msh
-
- # Aufruf der Okami-Shell
- echo Plattenbelegung von Laufwerk E:
- e:\bin\sh.ttp df E: ; echo ENTER: ; read
-
-
- Neben Kommentaren und Ausgabeanweisungen (echo) wird der Compiler (in der
- Datei d:\compiler\cc.ttp) mit einer über zwei Zeilen gehenden Parameter-
- liste aufgerufen. Danach wird eine weiteres Script (e:\bin\mshdemo.msh)
- ausgeführt und durch Aufruf der Okami-Shell die Belegung von Partition
- E: ausgegeben und auf einen Tastendruck gewartet.
-
-
- Die Microshell kann auch anstelle des Auto-Ordners benutzt werden.
- Dazu kopiert man sich alle Programme, die beim Systemstart geladen werden
- sollen, in einen eigenen Ordner auf der Diskette, z.B. in den Ordner
- a:\startup. In den eigentlichen Auto-Ordner kopiert man nur die Datei
- msh.prg. Unter dem Namen a:\msh.inf wird eine Datei angelegt, die die
- Namen der zu startenden Programme in der gewünschten Reihenfolge enthält.
- (Im einfachsten Fall erzeugt man diese Datei von der Okami-Shell aus
- mit dem Kommando:
- ls -n a:\startup\*.prg >a:\msh.inf
- Dann ist die Wirkung dieselbe wie beim Aufruf aus dem Auto-Ordner.)
- Außerdem kann die inf-Datei Kommentare und echo-Zeilen erhalten.
- Natürlich ist von der Microshell aus auch der Aufruf von Programmen
- aus beliebigen anderen Ordnern möglich.
- WICHTIG: die Datei msh.inf muß bei dieser Verwendung im Wurzelverzeichnis
- von a: liegen und nicht im Auto-Ordner, da beim Systemstart das Wurzel-
- verzeichnis das aktuelle Directory ist, auch bei der Ausführung der
- Programme im Auto-Ordner.
-